package com.xuetang9.t9.hotel.beans;

import com.fasterxml.jackson.annotation.JsonFilter;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xuetang9.t9.hotel.utils.OverallConstant;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 预订信息
 * @author PANG
 */
public class Reservation implements Serializable {

    /**
     *预订订单编号
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long reservationId;

    /**
     *客人姓名
     */
    private String guestName;

    /**
     *联系方式
     */
    private String guestPhone;

    /**
     *预订方式
     */
    private String reservationType;

    /**
     *预订时间
     */
    @JsonFormat(pattern=OverallConstant.TIME_FORMAT,timezone = "GMT+8")
    private Date reservationDate;

    /**
     *预抵时间
     */
    @JsonFormat(pattern= OverallConstant.TIME_FORMAT,timezone = "GMT+8")
    private Date arriveDate;

    /**
     *天数
     */
    private Integer dayNum;

    /**
     *间数
     */
    private Integer roomNum;

    /**
     *预定金
     */
    private Double reservationPtice;

    /**
     *付款方式
     */
    private String paymentType;

    /**
     *0-正常 1-异常
     */
    private Integer reservationState;

    /**
     *订单备注
     */
    private String reservationComment;

    /**
     *房间类型编号
     */
    private Integer typeId;

    /**
     *接单员编号
     */
    private Integer staffId;

    //外键
    /**
     *房间类型
     */
    private RoomType roomType;

    /**
     *业务人员
     */
    private StaffInfo staffInfo;

    public Long getReservationId() {
        return reservationId;
    }

    public void setReservationId(Long reservationId) {
        this.reservationId = reservationId;
    }

    public String getGuestName() {
        return guestName;
    }

    public void setGuestName(String guestName) {
        this.guestName = guestName;
    }

    public String getGuestPhone() {
        return guestPhone;
    }

    public void setGuestPhone(String guestPhone) {
        this.guestPhone = guestPhone;
    }

    public String getReservationType() {
        return reservationType;
    }

    public void setReservationType(String reservationType) {
        this.reservationType = reservationType;
    }

    public Date getReservationDate() {
        return reservationDate;
    }

    public void setReservationDate(Date reservationDate) {
        this.reservationDate = reservationDate;
    }

    public Date getArriveDate() {
        return arriveDate;
    }

    public void setArriveDate(Date arriveDate) {
        this.arriveDate = arriveDate;
    }

    public Integer getDayNum() {
        return dayNum;
    }

    public void setDayNum(Integer dayNum) {
        this.dayNum = dayNum;
    }

    public Integer getRoomNum() {
        return roomNum;
    }

    public void setRoomNum(Integer roomNum) {
        this.roomNum = roomNum;
    }

    public Double getReservationPtice() {
        return reservationPtice;
    }

    public void setReservationPtice(Double reservationPtice) {
        this.reservationPtice = reservationPtice;
    }

    public String getPaymentType() {
        return paymentType;
    }

    public void setPaymentType(String paymentType) {
        this.paymentType = paymentType;
    }

    public Integer getReservationState() {
        return reservationState;
    }

    public void setReservationState(Integer reservationState) {
        this.reservationState = reservationState;
    }

    public String getReservationComment() {
        return reservationComment;
    }

    public void setReservationComment(String reservationComment) {
        this.reservationComment = reservationComment;
    }

    public Integer getTypeId() {
        return typeId;
    }

    public void setTypeId(Integer typeId) {
        this.typeId = typeId;
    }

    public Integer getStaffId() {
        return staffId;
    }

    public void setStaffId(Integer staffId) {
        this.staffId = staffId;
    }

    public RoomType getRoomType() {
        return roomType;
    }

    public void setRoomType(RoomType roomType) {
        this.roomType = roomType;
    }

    public StaffInfo getStaffInfo() {
        return staffInfo;
    }

    public void setStaffInfo(StaffInfo staffInfo) {
        this.staffInfo = staffInfo;
    }

    @Override
    public String toString() {
        return "Reservation{" +
                "reservationId=" + reservationId +
                ", guestName='" + guestName + '\'' +
                ", guestPhone='" + guestPhone + '\'' +
                ", reservationType='" + reservationType + '\'' +
                ", reservationDate=" + reservationDate +
                ", arriveDate=" + arriveDate +
                ", dayNum=" + dayNum +
                ", roomNum=" + roomNum +
                ", reservationPtice=" + reservationPtice +
                ", paymentType='" + paymentType + '\'' +
                ", reservationState=" + reservationState +
                ", reservationComment='" + reservationComment + '\'' +
                ", typeId=" + typeId +
                ", staffId=" + staffId +
                ", roomType=" + roomType +
                ", staffInfo=" + staffInfo +
                '}';
    }
}
